home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / NUMBERS.SWG / 0048_RIP Mega Numbers.pas < prev    next >
Pascal/Delphi Source File  |  1994-05-25  |  2KB  |  54 lines

  1.  
  2. {
  3. You're right about that... The only thin why I found it difficult, is
  4. because TP (or any other language) doesn't support the MenaNum itself..
  5. Some other thing is that when you're creating a file, you need to use
  6. two windows, and constantly convert the numbers... But for the source,
  7. thanks, I'll look it over... Is it Ok with you when I place it in the
  8. download of my BBS..? I havn't seen any DEC<>MEGA program yet...
  9.  
  10. Try this...
  11. }
  12.  
  13. Function MegaToDec(Num: String) : LongInt; {Converts String MEGA to Dec}
  14. Const MegaNum : Set of Char = ['0'..'9','A'..'Z']; {assume UC}
  15.  
  16. Var HoldNum,
  17.     TempVal : LongInt;
  18.     CharPos : Byte; {Position of Character}
  19.  
  20.     Function ToThirtySix(Ex: Byte) : Longint; {Raises to power of 36}
  21.     Var Times: Byte;
  22.         HoldPower: LongInt;
  23.  
  24.     Begin
  25.         HoldPower:=0;
  26.         If Ex=0 then begin
  27.            ToThirtySix:=1;
  28.            End;
  29.         For Times:=1 to Ex do HoldPower:=HoldPower*36;
  30.         ToThirtySix:=HoldPower;
  31.     End;
  32.  
  33.    Function ConvertVal(Ch: Char) : Byte;
  34.    Var Temp : Char;
  35.    Begin
  36.         Temp:=Ch;
  37.         Upcase(Temp);
  38.         If Ord(Ch)>47 and Ord(Ch)<58 then ConvertVal:=Ord(Ch)-48;
  39.                 {Converts if 0..9}
  40.         If Ord(Ch)>64 and Ord(Ch)<91 then ConvertVal:=Ord(Ch)-55;
  41.    End;
  42.  
  43.    Begin
  44.         HoldNum:=0;
  45.         For CharPos:=Length(Num) downto 1 do
  46.             HoldNum:=HoldNum+ConverVal(Num[CharPos])*
  47.                 ToThirtysix(CharPos-1);
  48.         MegaToDec:=HoldNum;
  49.    End;
  50.  
  51. Note: this is untested, but it should work... try values of 10 Mega 
  52. (should by 36 dec) or 2Z (should be 107 dec I think)... Tell me how it
  53. works...
  54.